package com.lsc.www.day07;

public class Test04 {
    public static void main(String[] args) {
//        Subject s =  new English();
            Subject s =  null;
            s.Examination();
//        Chinese chinese = (Chinese) subject;
        //以上异常类型只有在强制类型转换时才会发生，也就是说向下转型存在隐患
        //编译通过了，但是运行会出现问题！
        //而向上转型则只要编译通过了则运行不会出现问题
        //而要规避这个问题要祭出
        //instanceof运算符
        //语法格式
        // (引用 instanceof 数据类型名)
        //以上运算符的执行结果为布尔类型，结果只能是true/false
        //假设 (a instanceof Subject )
        //true
            //a这个引用指向的对象是一个Subject类型

        //fasle
            //a这个引用指向的对象不是一个Subject类型

//        if(s instanceof Chinese){
//            Chinese c = (Chinese) s;
//            c.SpeakChinese();
//        }else if(s instanceof English) {
//            English e = (English) s;
//            e.SpeakEnglish();
//        }


        /* 编写图形类
            需要有一个共有属性 图形
            需要有三个共有方法 输出 我是什么什么图形       计算 周长 面积
        *   编写三角形类
        *   设置三条边
            并计算 周长 、面积
            编写圆形类
            设置直径 double d;
            并计算 周长 、面积
            编写长方形
            设置 长 宽
            并计算 周长 、面积

            海伦公式
            * */
//        Math.PI
//                Math.sqrt()//根号






    }
}
